package org.vates.practicofinal.service;

import java.io.Serializable;
import java.util.List;

import org.vates.practicofinal.dao.hibernate.BaseDao;

public interface BaseObjectService<T, PK extends Serializable> extends BaseService {
	
	/**
	 * Save.
	 *
	 * @param entity the entity
	 */
	void save(T entity);
	
	/**
	 * Delete.
	 *
	 * @param entity the entity
	 */
	void delete(T entity);
	
	/**
	 * Update.
	 *
	 * @param entity the entity
	 */
	void update(T entity);
	
	/**
	 * Gets the.
	 *
	 * @param id the id
	 * @return the t
	 */
	T get(PK id);
	
	/**
	 * Gets the all.
	 *
	 * @return the all
	 */
	List<T> getAll();
	
	/**
	 * Gets the entity dao.
	 *
	 * @return the entity dao
	 */
	BaseDao<T, PK> getEntityDao();
}
